package com.yanti.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yanti.domain.ResponseResult;
import com.yanti.domain.entity.Questions;
import com.yanti.domain.vo.QuestionsVo;

import java.util.List;
import java.util.Map;


/**
 * (Questions)表服务接口
 *
 * @author luo
 * @since 2024-12-04 09:14:03
 */
public interface QuestionsService extends IService<Questions> {
    /**
     * 根据章节id获取该章节下的问题数量
     * @param id 章节id
     * @return 问题数量
     */
    Integer getQuestionNumByChapterId(Long id);

    /**
     * 根据章节id获取该章节下的问题
     * @param id 章节id
     * @return 问题列表
     */
    ResponseResult getQuestionByChapterId(String id);
    /**
     * 获取所有问题
     * @return 问题列表
     */
    ResponseResult getQuestion();

    /**
     * 根据问题id获取答案
     * @param questionId 问题id
     * @return 答案
     */
    String getAnswerById(Long questionId);

    /**
     * 根据问题id集合获取答案
     * @param questionIds 问题id集合
     * @return
     */
    Map<Long,String> getAnswersByIds(List<Long> questionIds);

    /**
     *  判断答案是否正确
     * @param questionId 问题id
     * @param answer
     * @return
     */
    Boolean getAnswerByQuestionId(Long questionId, String answer);

    /**
     *  根据问题id获取章节id
     * @param questionIds 问题id集合
     * @return 键值对，键为问题id，值为章节id
     */
    Map<Long,String> getChapterIdByQuestionIds(List<Long> questionIds);

    /**
     * 根据问题id集合获取问题
     * @param questionIds 问题id集合
     * @return 问题列表
     */
    List<QuestionsVo> getQuestionsByQuestionIds(List<Long> questionIds);

    Map<String,Long> getWrongQuestionsAnalysis(List<Long> questionIds);
}

